Red Hat System Administration II 8.2

Упражнение под руководством преподавателя: Управление временными файлами

В этом упражнении вы настроите systemd-tmpfiles, чтобы изменить скорость удаления временных файлов из каталога /tmp, а также периодически удалять файлы из другого каталога.

Результаты

Вы сможете:

  • настроить systemd-tmpfiles на удаление неиспользуемых временных файлов из каталога /tmp;

  • настроить systemd-tmpfiles на периодическое удаление файлов из другого каталога.

Войдите на workstation как пользователь student с паролем student.

На workstation выполните команду lab scheduling-tempfiles start, чтобы начать упражнение. Этот сценарий создает необходимые файлы и обеспечивает правильную настройку среды.

[student@workstation ~]$ lab scheduling-tempfiles start
  1. На workstation установите SSH-подключение к servera как пользователь student.

    [student@workstation ~]$ ssh student@servera
    ...output omitted...
    [student@servera ~]$ 
  2. Настройте утилиту systemd-tmpfiles на очистку каталога /tmp, чтобы в нем не было файлов, которые не использовались в течение последних пяти дней. Убедитесь, что конфигурация не перезаписывается при обновлении пакетов.

    1. Выполните команду sudo -i, чтобы переключиться на пользователя root.

      [student@servera ~]$ sudo -i
      [sudo] password for student: student
      [root@servera ~]# 
    2. Скопируйте /usr/lib/tmpfiles.d/tmp.conf в /etc/tmpfiles.d/tmp.conf.

      [root@servera ~]# cp /usr/lib/tmpfiles.d/tmp.conf \
      /etc/tmpfiles.d/tmp.conf
    3. Найдите в файле /etc/tmpfiles.d/tmp.conf строку конфигурации, которая применяется к каталогу /tmp. Замените существующий возраст временных файлов в этой строке конфигурации на 5 дней. Удалите из файла все остальные строки, включая закомментированные. Используйте команду vim /etc/tmpfiles.d/tmp.conf для редактирования файла конфигурации. Содержание файла /etc/tmpfiles.d/tmp.conf должно быть следующим:

      q /tmp 1777 root root 5d

      В приведенной выше конфигурации тип q идентичен d. Он указывает утилите systemd-tmpfiles создать каталог /tmp, если он не существует. Для каталога должны быть заданы восьмеричные разрешения 1777. Пользователь и группа, владеющие каталогом /tmp, ― root. В каталоге /tmp не должно быть временных файлов, которые не использовались в течение последних пяти дней.

    4. Выполните команду systemd-tmpfiles --clean, чтобы убедиться в наличии правильной конфигурации в файле /etc/tmpfiles.d/tmp.conf.

      [root@servera ~]# systemd-tmpfiles --clean /etc/tmpfiles.d/tmp.conf

      Поскольку вышеуказанная команда не вернула никаких ошибок, это подтверждает, что параметры конфигурации правильные.

  3. Добавьте новую конфигурацию, которая гарантирует наличие каталога run/momentary с пользователем-владельцем и группой-владельцем root. У каталога должны быть восьмеричные разрешения 0700. Конфигурация должна удалить из этого каталога файлы, которые не использовались в течение последних 30 секунд.

    1. Создайте файл с именем etc/tmpfiles.d/momentary.conf и следующим содержимым. Используйте команду vim /etc/tmpfiles.d/momentary.conf для создания файла конфигурации.

      d /run/momentary 0700 root root 30s

      Вышеуказанная конфигурация указывает утилите systemd-tmpfiles проверить наличие каталога /run/momentary с восьмеричными разрешениями 0700. Пользователь и группа, владеющие каталогом /run/momentary, ― root. Все файлы, которые не использовались в течение последних 30 секунд, должны быть удалены из этого каталога.

    2. Выполните команду systemd-tmpfiles --create, чтобы убедиться в наличии правильной конфигурации в файле /etc/tmpfiles.d/momentary.conf. Команда создает каталог /run/momentary, если он не существует.

      [root@servera ~]# systemd-tmpfiles --create \
      /etc/tmpfiles.d/momentary.conf

      Поскольку вышеуказанная команда не вернула никаких ошибок, это подтверждает, что параметры конфигурации правильные.

    3. Выполните команду ls, чтобы убедиться, что каталог /run/momentary создан с соответствующими разрешениями, пользователем-владельцем и группой-владельцем.

      [root@servera ~]# ls -ld /run/momentary
      drwx------. 2 root root 40 Mar 21 16:39 /run/momentary

      Обратите внимание, что восьмеричный набор разрешений для /run/momentary ― 0700, а пользователь-владелец и группа-владелец ― root.

  4. Убедитесь, что из каталога /run/momentary удалены все файлы, не использовавшиеся в течение последних 30 секунд, согласно конфигурации systemd-tmpfiles для каталога.

    1. С помощью команды touch создайте файл с именем /run/momentary/testfile.

      [root@servera ~]# touch /run/momentary/testfile
    2. Выполните команду sleep, чтобы приглашение командной оболочки не появлялось в течение 30 секунд.

      [root@servera ~]# sleep 30
                  
    3. Когда появится приглашение оболочки, выполните команду systemd-tmpfiles --clean для удаления устаревших файлов из каталога /run/momentary на основе правила, указанного в файле /etc/tmpfiles.d/momentary.conf.

      [root@servera ~]# systemd-tmpfiles --clean \
      /etc/tmpfiles.d/momentary.conf

      Вышеуказанная команда удаляет файл /etc/tmpfiles.d/momentary.conf, поскольку он не использовался в течение 30 секунд и должен был быть удален на основе правила, указанного в файле /etc/tmpfiles.d/momentary.conf.

    4. Выполните команду ls -l, чтобы убедиться, что файл /run/momentary/testfile не существует.

      [root@servera ~]# ls -l /run/momentary/testfile
      ls: cannot access '/run/momentary/testfile': No such file or directory
    5. Выйдите из командной оболочки пользователя root и из системы servera.

      [root@servera ~]# exit
      logout
      [student@servera ~]$ exit
      logout
      Connection to servera closed.
      [student@workstation ~]$ 

Конец

На машине workstation выполните команду lab scheduling-tempfiles finish, чтобы закончить это упражнение. Сценарий удаляет файлы, созданные в ходе упражнения, для очистки среды.

[student@workstation ~]$ lab scheduling-tempfiles finish

Упражнение завершено.